package com.yanmaohu.yulia.bean;

import java.util.List;

/**
 * @author Bright Lee
 */
public final class HypotheticalSetFunction implements OrderedSetFunction {

    private int beginIndex;
    private int endIndex;
    private RankFunctionType rankFunctionType;
    private List<ValueExpression> hypotheticalSetFunctionValueExpressionList;
    private WithinGroupSpecification withinGroupSpecification;

    public HypotheticalSetFunction(int beginIndex,
                                   int endIndex,
                                   RankFunctionType rankFunctionType,
                                   List<ValueExpression> hypotheticalSetFunctionValueExpressionList,
                                   WithinGroupSpecification withinGroupSpecification) {
        this.beginIndex = beginIndex;
        this.endIndex = endIndex;
        this.rankFunctionType = rankFunctionType;
        this.hypotheticalSetFunctionValueExpressionList = hypotheticalSetFunctionValueExpressionList;
        this.withinGroupSpecification = withinGroupSpecification;
    }

    @Override
    public int getBeginIndex() {
        return beginIndex;
    }

    @Override
    public int getEndIndex() {
        return endIndex;
    }

    public RankFunctionType getRankFunctionType() {
        return rankFunctionType;
    }

    public List<ValueExpression> getHypotheticalSetFunctionValueExpressionList() {
        return hypotheticalSetFunctionValueExpressionList;
    }

    public WithinGroupSpecification getWithinGroupSpecification() {
        return withinGroupSpecification;
    }

}
